计算机网络(九)—— 传输层
传输层架构在网络层之上,在两台计算机进程之间传输数据,常见的传输层协议包括TCP和UDP。
1. TCP
1.1 首部格式
1.2 TCP状态机
TCP是面向连接的,在其生命周期会有各种不同状态
状态 | 描述 |
---|---|
LISTEN | 等待来自远程TCP应用程序的请求 |
SYN_SENT | 发送连接请求后等待来自远程端点的确认。TCP第一次握手后客户端所处的状态 |
SYN-RECEIVED | 该端点已经接收到连接请求并发送确认。该端点正在等待最终确认。TCP第二次握手后服务端所处的状态 |
ESTABLISHED | 代表连接已经建立起来了。这是连接数据传输阶段的正常状态 |
FIN_WAIT_1 | 等待来自远程TCP的终止连接请求或终止请求的确认 |
FIN_WAIT_2 | 在此端点发送终止连接请求后,等待来自远程TCP的连接终止请求 |
CLOSE_WAIT | 该端点已经收到来自远程端点的关闭请求,此TCP正在等待本地应用程序的连接终止请求 |
CLOSING | 等待来自远程TCP的连接终止请求确认 |
LAST_ACK | 等待先前发送到远程TCP的连接终止请求的确认 |
TIME_WAIT | 等待足够的时间来确保远程TCP接收到其连接终止请求的确认 |
1.3 三次握手
1.4 四次挥手
2. UDP
3. TCP与UDP的区别
TCP | UDP | |
---|---|---|
是否连接 | 面向无连接 | 面向连接 |
是否可靠 | 不可靠传输,尽力交付 | 可靠传输,有流量控制和拥塞控制 |
通信方式 | 支持单播、多播 | 只能点对点通信 |
传输方式 | 面向报文 | 面向字节流 |
首部开销 | 8字节 | 最小20字节,最大60字节 |
使用场景 | 适用IP电话、视频会议、直播、即时通讯等实时应用 | 适用要求可靠传输的应用,如http,ftp等 |